#ifndef ABSTRACT_HPP_
#define ABSTRACT_HPP_

#include <iostream>
#include <unordered_set>
#include <unistd.h>
#include "Observer.hpp"
#include <vector>
#include <string>
#include <ctime>

// 抽象展示
class Display
{
protected:
public:
  virtual void Print() = 0;
};

// 抽象观察者
class Observer
{
protected:
public:
  virtual void Update(float, float, float) = 0;
  virtual void Register() = 0;
  virtual void Remove() = 0;
};

// 抽象观察目标
class Subject
{
protected:
public:
  virtual void RegisterObserver(Observer*) = 0;
  virtual void RemoveObserver(Observer*) = 0;
  virtual void NotifyObserver() = 0;
};

#endif
